home *** CD-ROM | disk | FTP | other *** search
- 'The following routine uses a checksum algorithm to verify credit card #'s:
- 'QuickBASIC translation done by Public (software) Library, 713-524-6394,
- 'from a Turbo Pascal routine done by
- '
- 'Daniel J. Karnes
- '1 Baron Park #20
- 'Burlington, MA 01803
- '
- 'CIS: 71240,3407
- '
- 'Karnes requested $5 for the use of the compiled program, but didn't mention
- 'the use of the code, though he refers to it as public domain and the
- 'checksum algorithm is widely known.
-
-
- C$=""
- DIM CCtype$(3)
- CCtype$(1) = "American Express"
- CCtype$(2) = "Visa"
- CCtype$(3) = "MasterCard"
- CCtype$(4) = "Discover"
-
- INPUT "Enter Credit Card #: "; CC$
- FOR i = 1 TO LEN(CC$)
- x$ = MID$(CC$, I, 1)
- IF x$ => 0 AND x$ <= 9 THEN C$ = C$ + x$
- NEXT
-
- n = LEN(C$)
- IF n/2 = n\2 THEN
- FOR I = I TO 1 STEP -1
- X=ASC(MID$(C$,I,1))
- IF I\2 <> I/2 THEN Y = (X-48)*2 ELSE Y = (X-48)
- IF Y>=10 THEN Y = Y - 9
- XCARD = XCARD + Y
- NEXT
- ELSE
- FOR I = LEN(C$) TO 1 STEP -1
- X = ASC(MID$(C$,I,1))
- IF I\2 <> I/2 THEN Y = (X-48) ELSE Y = (X-48)*2
- IF Y>=10 THEN Y = Y - 9
- XCARD = XCARD + Y
- NEXT
- END IF
- X = 10 - (XCARD MOD 10)
- IF X = 10 THEN X = 0
-
- t = VAL(LEFT$(C$, 1))
- IF t => 3 AND t <= 6 THEN
- PRINT CCtype$(t-2) " checksum ";
- IF X = 0 THEN PRINT "good" ELSE PRINT "bad"
- ELSE
- PRINT "Unrecognized Card"
- END IF